package com.cyz.mapper;

import java.util.List;
import java.util.Map;

import com.cyz.pojo.Reserve;

public interface ReserveMapper {

	/**
	 * 通过用户编号获取用户所有的预约 
	 * @param userId 用户编号
	 * @return 预约列表
	 */
	public List<Reserve> getReserveByUserId(Integer userId);
	
	/**
	 * 查询预约
	 * @param map 可选 ：userId 用户编号， subject 科目，startTime 起始时间，endTime 结束时间，start 起始位置，offset 偏移量
	 * @return 根据查询条件查询出的预约列表
	 */
	public List<Reserve> getReserve(Map map);
	
	/**
	 * 获取记录总条数
	 * @param map 可选 ：userId 用户编号， subject 科目，startTime 起始时间，endTime 结束时间，start 起始位置，offset 偏移量
	 * @return 根据查询条件获取记录总条数
	 */
	public Integer getReserveTotalCount(Map map);

	/**
	 * 删除预约
	 * @param reserveId 预约编号
	 * @return void
	 */
	public void deleteReserve(Integer reserveId);
	
	/**
	 * 通过场次编号删除预约
	 * @param sessionId 场次编号
	 * @returnvoid
	 */
	public void deleteReserveBySessionId(Integer sessionId);
		
	/**
	 *根据场次编号获取该场次所有预约 
	 *@param sessionId 场次编号
	 *@return 预约列表
	 */
	public List<Reserve> getReserveBySessionId(Integer sessionId);
	
	/**
	 * 在服务器启动时判断预约是否过期
	 */
	public void reserveInit();

	/**
	 * 通过预约编号获取预约对象
	 * @param reserveId 预约编号
	 * @return 预约对象
	 */
	public Reserve getReserveById(Integer reserveId);

	/**
	 * 更新预约信息
	 * @param reserve 预约对象
	 */
	public void updateReserve(Reserve reserve);

}
